package com.shujia.day16;

import java.io.File;
import java.io.FileInputStream;

/*
        IO流【输入输出流】：
        按照流向划分：
            输入流：外部数据 -> java程序
            输出流：java程序 -> 外部数据

        按照数据类型划分【根据使用记事本打开是否能够看懂来决定】：
            字节流【万能流】：
                字节输出流：
                    OutputStream（抽象类）
                        - FileOutputStream（实现子类）

                字节输入流：
                    InputStream（抽象类）
                        - FileInputStream（实现子类）
            字符流【记事本能看懂】：
                字符输入流：
                字符输出流：

        FileInputStream：
            构造方法：
                FileInputStream(File file)
                FileInputStream(String name)
            成员方法：
                public int read()
                public int read(byte[] b)


 */
public class FileInputStreamDemo1 {
    public static void main(String[] args) throws Exception {
//        FileInputStream fis = new FileInputStream(new File("java/src/com/shujia/day16/a1.txt"));
        FileInputStream fis = new FileInputStream("java/src/com/shujia/day16/a1.txt");

        //public int read() 一次只读取一个字节
        // 如果没有读到数据，返回-1
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        System.out.print((char)fis.read());
//        int i = 0;
//        while ((i = fis.read()) != -1) {
//            System.out.print((char) i);
//        }

        //public int read(byte[] b) 一次读取一个字节数组
        //创建一个字节数组，用作接收读取到的字节
        byte[] bytes = new byte[7];
        int length = 0;
        while ((length = fis.read(bytes))!=-1){
            //读取到的字节在字节数组中
            //返回的是实际读取到的字节数
            //将字节数组转字符串
            String s = new String(bytes,0,length);
            System.out.print(s);
        }




        // 释放资源
        fis.close();
    }
}
